
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;

public class Voiture {
    private JPanel          container;
    private double          vitesseInitiale;
    private double          vitesseFinale;
    private double          vecteurInitial[] = new double[2];
    private double          vecteurFinal[] = new double[2];
    private double          masse;
    private double          p[] = new double[2];

    private int             position[] = new int[2];

    private boolean         uneDim;

    private int             id;

    public Voiture(int id, JPanel pnl)
    {
        // Initialisation des variables
        this.id = id;
        container = pnl;
        uneDim = true;

        vitesseInitiale = vitesseFinale = vecteurInitial[0] = vecteurInitial[1] =
                vecteurFinal[0] = vecteurFinal[1] = masse = p[0] = p[1] =
                position[0] = position[1] = 0;

        position[0] = this.id * 750;
    }   // Constructeur

    public int[] getPosition() { return position; }

    public void setUneDim(double vitesseIni, double vitesseFin, double m)
    {
        vitesseInitiale = vitesseIni;
        vitesseFinale = vitesseFin;
        masse = m;

        uneDim = true;
    }

    public void setDeuxDim(double[] vitesseIni, double[] vitesseFin, double m)
    {
        vecteurInitial[0] = vitesseIni[0];
        vecteurInitial[1] = vitesseIni[1];
        vecteurFinal[0] = vitesseFin[0];
        vecteurFinal[1] = vitesseFin[1];
        masse = m;

        uneDim = false;
    }

    public void draw()
    {
        Graphics g = container.getGraphics();
        g.setColor((id == 0) ? Color.blue : Color.red);
        g.fillRect(position[0], container.getHeight()/2, 50, 50);
        g.dispose();
    }

    public void move()
    {
        if (!container.isVisible())
            return;
        
        Graphics g = container.getGraphics();
        g.setXORMode(container.getBackground());
        g.setColor((id == 0) ? Color.blue : Color.red);
        g.fillRect(position[0], container.getHeight()/2, 50, 50);
        position[0] += vitesseInitiale;
        g.fillRect(position[0], container.getHeight()/2, 50, 50);
        g.dispose();
    }

}
